package chapter03;

public class Test06_Constractor {
    public static void main(String[] args) {
        Student1 s1 = new Student1("张三",10);
        s1.info();
        Student1 s2 = new Student1("李四",20,"秦皇岛职业技术学院");
        s2.info();
    }
}
class Student1{
    private String name;
    private int age;
    private String school="河北建材职业技术学院";
    //生成对象的时候会自动调用构造函数
    //构造函数没有返回值 但是可以使用return 不能返回任何值
    //构造函数必须和类同名 大多数都是使用public修饰的
    //如果没有定义构造函数 系统会自动生成一个无参的构造函数 如果写了构造函数 系统就不会再提供了
    public Student1(){
        System.out.println("调用了构造函数");
    }
    public Student1(String name,int age){
        //this和python中的self是一个作用 指向对象自己
        this.name = name;
        this.age = age;
    }
    //利用的函数的重载 同名函数可以不同的参数列表和返回类型
    //在调用的时候 系统会根据参数和返回类型不同而选择调用
    public Student1(String name,int age,String school){
        //使用this调用构造函数 只能出现在第一行 不能在两个构造函数中互调
        //只能出现在构造函数中
        this(name,age);
        this.school = school;
    }
    private void openMouth(){
        System.out.println("准备讲话");
    }
    public void info(){
        //可以使用this调用本类中的其它方法 this可以省略
        this.openMouth();
        System.out.println(name);
        System.out.println(age);
        System.out.println(school);
    }
}
